| Matching Statements |
| File1 Line# |
File2 Line# |
Statement |
| 2 | 2 | 100H: DECLARE BDOS LITERALLY , BOOT LITERALLY |
| 8 | 8 | .DECLARE COPYRIGHT DATA ( ) |
| 125 | 125 | DECLARE LIT LITERALLY , |
| 126 | 126 | DCL LIT , |
| 127 | 127 | PROC LIT , |
| 128 | 128 | ADDR LIT , |
| 129 | 129 | CTLL LIT , |
| 130 | 130 | CTLU LIT , |
| 131 | 131 | LCA LIT , |
| 132 | 132 | LCZ LIT , |
| 133 | 133 | ENDFILE LIT |
| 135 | 135 | DECLARE MAXA ADDRESS INITIAL(0006H), |
| 136 | 136 | MAX ADDRESS, |
| 137 | 137 | MAXM ADDRESS, |
| 138 | 138 | HMAX ADDRESS, |
| 139 | 139 | MAZB BASED MAXA ADDRESS |
| 141 | 141 | DECLARE NBUF LITERALLY , |
| 142 | 142 | BUFS LITERALLY , |
| 143 | 143 | BDISKA ADDRESS INITIAL(4), |
| 144 | 144 | BDISK BASED BDISKA BYTE, |
| 145 | 145 | FCBA ADDRESS INITIAL(5CH), |
| 146 | 146 | FCB BASED FCBA (33) BYTE, |
| 147 | 147 | BUFA ADDRESS INITIAL (80H), |
| 148 | 148 | RFCB (33) BYTE |
| 149 | 149 | INITIAL(0, , |
| 151 | 151 | PBP BYTE, |
| 152 | 152 | BUFF BASED BUFA (33) BYTE, |
| 153 | 153 | SFCB BASED FCBA (33) BYTE, |
| 154 | 154 | SBUFF(BUFS) BYTE, |
| 155 | 155 | DFCB (33) BYTE, |
| 156 | 156 | DBUFF (BUFS) BYTE, |
| 157 | 157 | NSOURCE ADDRESS, |
| 158 | 158 | NDEST ADDRESS |
| 160 | 160 | DECLARE SDISK BYTE, |
| 161 | 161 | DDISK BYTE |
| 163 | 163 | MON1: PROCEDURE(F,A) |
| 163 | 163 | DECLARE F BYTE, A ADDRESS |
164 168 | 164 168 | GO TO BDOS |
| 165 | 165 | END MON1 |
| 167 | 167 | MON2: PROCEDURE(F,A) BYTE |
| 167 | 167 | DECLARE F BYTE, A ADDRESS# |
| 169 | 169 | END MON2 |
| 171 | 171 | READCHAR: PROCEDURE BYTE |
| 171 | 171 | RETURN MON2(1,0) |
| 172 | 172 | END READCHAR |
| 174 | 174 | DECLARE TRUE LITERALLY , FALSE LITERALLY , |
| 175 | 175 | FOREVER LITERALLY , |
| 176 | 176 | CR LITERALLY , |
| 177 | 177 | LF LITERALLY , |
| 178 | 178 | WHAT LITERALLY |
| 180 | 180 | ^PRINTCHAR: PROCEDURE(CHAR) |
181 436 452 | 181 436 452 | DECLARE CHAR BYTE |
| 182 | 182 | CALL MON1(2,CHAR) |
| 183 | 183 | END PRINTCHAR |
| 185 | 185 | CRLF: PROCEDURE |
| 186 | 186 | CALL PRINTCHAR<CR> |
| 186 | 186 | CALL PRINTCHAR (LF) |
| 187 | 187 | END CRLF |
| 189 | 189 | ^PRINT: PROCEDURE (A) |
190 195 268 295 | 190 195 268 295 | DECLARE A ADDRESS |
191 288 290 312 884 | 191 288 290 312 884 | CALL CRLF |
| 191 | 191 | CALL MON1(9,A) |
| 192 | 192 | END PRINT |
| 194 | 194 | READ: PROCEDURE(A) |
| 196 | 196 | CALL MON1(10,A) |
| 197 | 197 | END READ |
| 199 | 199 | DECLARE DCNT BYTE |
| 201 | 201 | OPEN: PROCEDURE(FCB) |
202 207 212 217 222 227 232 237 | 202 207 212 217 222 227 232 237 | DECLARE FCB ADDRESS |
| 203 | 203 | DCNT = MON2(15,FCB) |
| 204 | 204 | END OPEN |
| 206 | 206 | CLOSE: PROCEDURE(FCB) |
| 208 | 208 | DCNT = MON2(16,FCB) |
| 209 | 209 | END CLOSE |
| 211 | 211 | SEARCH: PROCEDURE(FCB) |
| 213 | 213 | DCNT = MON2(17,FCB) |
| 214 | 214 | END SEARCH |
| 216 | 216 | DELETE: PROCEDURE(FCB) |
| 218 | 218 | CALL MON1(19,FCB) |
| 219 | 219 | END DELETE |
| 221 | 221 | DISKREAD: PROCEDURE(FCB) BYTE |
| 223 | 223 | RETURN MON2(20,FCB) |
| 224 | 224 | END DISKREAD |
| 226 | 226 | DISKWRITE, PROCEDURE(FCB) BYTE |
| 228 | 228 | RETURN MON2(21,FCB) |
| 229 | 229 | END DISKWRITE |
| 231 | 231 | MAKE: PROCEDURE(FCB) |
| 233 | 233 | DCNT = MON2(22,FCB) |
| 234 | 234 | END MAKE |
| 236 | 236 | RENAME: PROCEDURE(FCB) |
| 238 | 238 | CALL MON1(23,FCB) |
| 239 | 239 | END RENAME |
| 241 | 241 | DECLARE (MAXLEN,COMLEN) BYTE, COMBUFF(128) BYTE, |
| 242 | 242 | (TCBP,CBP) BYTE |
| 244 | 244 | READCOM, PROCEDURE |
| 245 | 245 | MAXLEN = 123 |
| 245 | 245 | CALL READ(.MAXLEN) |
| 246 | 246 | END READCOM |
| 248 | 248 | BREAK$KEY: PROCEDURE BYTE |
| 249 | 249 | IF MON2(11,0) THEN |
| 251 | 251 | CALL MON1(1,0) |
251 548 | 251 548 | RETURN TRUE |
253 550 | 253 550 | RETURN FALSE |
| 254 | 254 | END BREAK$KEY |
| 256 | 256 | CSELECT: PROCEDURE BYTE |
| 258 | 258 | RETURN MON2(25,0) |
| 259 | 259 | END CSELECT |
| 261 | 261 | SELECT: PROCEDURE(DISK) |
| 262 | 262 | DECLARE DISK BYTE |
| 264 | 264 | CALL MON1(14,DISK) |
| 265 | 265 | END SELECT |
| 267 | 267 | SETDMA: PROCEDURE(A) |
| 270 | 270 | CALL MON1(26,A) |
| 271 | 271 | END SETDMA |
| 273 | 273 | LIFTHEAD: PROCEDURE |
| 275 | 275 | CALL MON1(12,0) |
| 276 | 276 | END LIFTHEAD |
| 279 | 279 | MOVE: PROCEDURE(S,D,N) |
| 280 | 280 | DECLARE(S,D) ADDRESS, N BYTE |
| 281 | 281 | DECLARE A BASED S BYTE, B BASED D BYTE |
| 282 | 282 | DC WHILE (N := N - 1)<> 255 |
| 283 | 283 | B = A |
| 283 | 283 | S = S + 1 |
| 283 | 283 | D = D + l |
| 285 | 285 | END MOVE |
| 287 | 287 | FERR: PROCEDURE |
289 311 | 289 311 | CALL PRINT (. ) |
291 906 970 | 291 906 970 | GO TO BOOT |
| 292 | 292 | END FERR |
| 294 | 294 | SETTYPE, PROCEDURE(A) |
| 296 | 296 | CALL MOVE(A, .DFCB+9,3) |
| 297 | 297 | END SETTYPE |
| 299 | 299 | SETUP: PROCEDURE |
| 300 | 300 | NSOURCE = LENGTH(SBUFF) |
300 363 | 300 363 | NDEST = 0 |
| 301 | 301 | SFCB(12) = 0 |
| 301 | 301 | SFCB(32) = 0 |
| 304 | 304 | CALL MOVE(FCBA,.DFCB,33) |
306 336 399 505 | 306 336 399 505 | CALL SELECT(SDISK) |
| 307 | 307 | CALL OPEN(FCBA) |
308 959 | 308 959 | IF DCNT = 255 THEN |
| 309 | 309 | CALL MAKE(FCBA) |
310 325 396 | 310 325 396 | IF DCNT = 255 THEN CALL FERR |
314 321 398 404 | 314 321 398 404 | CALL SETTYPE(. ) |
315 322 | 315 322 | CALL DELETE(.DFCB) |
| 316 | 316 | IF SDISK <> DDISK THEN |
318 366 405 | 318 366 405 | CALL SELECT(DDISK) |
| 319 | 319 | CALL DELETED(.DFCB) |
| 323 | 323 | CALL MAKE(.DFCB) |
| 324 | 324 | DFCB(32) = O |
| 327 | 327 | END SETUP |
| 329 | 329 | FILLSOURCE: PROCEDURE |
330 786 801 | 330 786 801 | DECLARE I BYTE |
331 362 | 331 362 | ZN: PROCEDURE |
| 332 | 332 | NSOURCE * 0 |
333 364 | 333 364 | END ZN |
335 347 368 374 | 335 347 368 374 | CALL ZN |
| 337 | 337 | DO I = 0 TO NBUF |
| 338 | 338 | CALL SETDMA(.SBUFF(NSOURCE)) |
| 339 | 339 | IF (DCNT := DISKREAD(FCBA)) <> 0 THEN |
| 340 | 340 | IF DCNT > 1 THEN CALL FERR |
| 341 | 341 | SBUFF(NSOURCE) = ENDFILE |
| 342 | 342 | I = NBUF |
| 345 | 345 | NSOURCE = NSOURCE * 80h |
| 348 | 348 | END FILLSOURCE |
| 350 | 350 | GETSOURCE: PROCEDURE BYTE |
351 378 623 644 | 351 378 623 644 | DECLARE B BYTE |
| 352 | 352 | IF NSOURCE > = LENGTH(SBUFF) THEN CALL FILLSOURCE |
| 353 | 353 | IF (B := SBUFF(NSOURCE)) <> ENDFILE THEN |
| 354 | 354 | NSOURCE = NSOURCE + 1 |
355 629 | 355 629 | RETURN B |
| 356 | 356 | END GETSOURCE |
| 358 | 358 | WRITEDEST: PROCEDURE |
| 361 | 361 | DECLARE (I,N) BYTE |
| 367 | 367 | IF LOW((N := SHR(NDEST,7) - 1)) = 255 THEN RETURN |
| 369 | 369 | DO I = 0 TO N |
| 370 | 370 | CALL SETDMA(.DBUFF(NDEST)) |
| 371 | 371 | IF DISKWRITE(.DFCB) <> 0 THEN CALL FERR |
| 372 | 372 | NDEST = NDEST + 128 |
| 375 | 375 | END WRITEDEST |
| 377 | 377 | ^PUTDEST: PROCEDURE(B) |
| 379 | 379 | IF NDEST) >= LENGTH(DBUFF) THEN CALL WRITEDEST |
| 380 | 380 | DBUFF(NDEST) = B |
| 381 | 381 | NDEST = NDEST + 1 |
| 382 | 382 | END PUTDEST |
| 384 | 384 | FINIS: PROCEDURE |
| 385 | 385 | MOVEUP: PROCEDURE |
| 386 | 386 | CALL MOVE(.DFCB,.DFCB+16,16) |
| 387 | 387 | END MOVEUP |
| 390 | 390 | DO WHILE(LOW(NDEST) AND 7FH) <> 0 |
| 391 | 391 | CALL PUTDEST<ENDFILE> |
| 393 | 393 | CALL WRITEDEST |
| 395 | 395 | CALL CLOSE(. DFC0) |
| 398 | 398 | CALL MOVEUP |
| 400 | 400 | CALL MOVE(FCBA,.DFCB,16) |
401 406 | 401 406 | CALL RENAME(.DFCB) |
| 402 | 402 | CALL MCVEUP |
| 407 | 407 | END FINIS |
| 410 | 410 | LPP LIT , |
| 411 | 411 | FORWARD LIT , |
| 412 | 412 | BACKWARD LIT , |
| 413 | 413 | RUBOUT LIT , |
| 414 | 414 | POUND LIT , |
| 415 | 415 | MACSIZE LIT , |
| 416 | 416 | SCRSIZE LIT , |
| 417 | 417 | COMSIZE LIT |
| 419 | 419 | DCL MACRO(MACSIZE) BYTE, |
| 420 | 420 | SCRATCH(SCRSIZE) BYTE, |
| 421 | 421 | (UBP, WBE, WBJ) BYTE, |
| 422 | 422 | (FLAG, MP, MI, XP, COLUMN) BYTE, |
| 423 | 423 | MT COMSIZE |
| 425 | 425 | DCL(START, RESTART, OVERCOUNT, OVERFLOW, RESET, BADCOM) LABEL |
| 427 | 427 | DCL INSERTING BYTE, |
| 428 | 428 | READBUFF BYTE |
| 431 | 431 | TAB LITERALLY , |
| 432 | 432 | EOS LITERALLY |
| 435 | 435 | TTYCHAR: PROCEDURE(CHAR) |
| 437 | 437 | IF CHAR >= THEN COLUMN = COLUMN + 1 |
| 438 | 438 | IF CHAR = CR THEN COLUMN = 0 |
| 439 | 439 | CALL PRINTCHAR(CHAR) |
| 440 | 440 | END TTYCHAR |
| 442 | 442 | ^PRINTC: PROCEDURE(CHAR) |
| 443 | 443 | DECLARE (CHAR,I,J) BYTE |
| 444 | 444 | I = CHAR = TAB AND 7 - (COLUMN AND 7) |
| 445 | 445 | IF CHAR = TAB THEN CHAR = |
| 446 | 446 | DO J = 0 TO I |
| 447 | 447 | CALL TTYCHAR(CHAR) |
| 449 | 449 | END PRINTC |
| 451 | 451 | ^PRINTNMAC: PROCEDURE(CHAR) |
| 454 | 454 | IF MP <> 0 THEN RETURN |
455 882 | 455 882 | CALL PRINTC(CHAR) |
| 456 | 456 | END PRINTNMAC |
| 458 | 458 | DECLARE TRANSLATE BYTE, |
| 459 | 459 | UPPER BYTE |
| 461 | 461 | LOWERCASE: PROCEDURE(C) BYTE |
462 468 847 | 462 468 847 | DECLARE C BYTE |
| 464 | 464 | RETURN C >= LCA AND C <= LCZ |
| 465 | 465 | END LOWERCASE |
| 467 | 467 | UTRAN: PROCEDURE(C) BYTE |
| 470 | 470 | IF TRANSLATE AND LOWERCASE(C) THEN C = C AND 10111110 |
| 471 | 471 | RETURN C |
| 472 | 472 | END UTRAN |
| 474 | 474 | READC |
| 476 | 476 | IF MP > 0 THEN |
478 803 1137 | 478 803 1137 | IF BREAK$KEY THEN GO TO RESET |
| 479 | 479 | IF XP >= MP THEN |
| 481 | 481 | IF MT <> 0 THEN |
| 482 | 482 | IF(MT:=MT-1) = 0 THEN |
483 767 873 875 | 483 767 873 875 | GO TO RESET |
485 1127 | 485 1127 | XP = 0 |
| 487 | 487 | RETURN UTRAN(MACRO((XP XP + 1) - 1) |
| 489 | 489 | IF INSERTING THEN RETURN UTRAN(READCHAR) |
| 492 | 492 | IF READBUFF THEN |
| 493 | 493 | READBUFF = FALSE |
| 493 | 493 | CALL LIFTHEAD |
| 494 | 494 | CALL PRINTC( ) |
| 495 | 495 | CALL READCOM |
| 495 | 495 | CBP = 0 |
496 763 881 924 | 496 763 881 924 | CALL PRINTC(LF) |
497 870 | 497 870 | COLUMN = 0 |
| 499 | 499 | IF (READBUFF := CBP = COMLEN ) THEN COMBUFF(CBP) = CR |
| 500 | 500 | RETURN UTRAN(COMBUFF((CBP := CBP +1) -1)) |
| 501 | 501 | END READC |
| 503 | 503 | READFILE: PROCEDURE BYTE |
| 504 | 504 | IF RBP >= 80H THEN |
| 506 | 506 | IF DISKREAD(.RFCB) <> 0 THEN RETURN ENDFILE |
| 507 | 507 | RBP = 0 |
| 509 | 509 | RETURN UTRAN(BUFF((RBP := RBP + i) - 1)) |
| 510 | 510 | END READFILE |
| 512 | 512 | GETMEM: PROC(I) BYTE |
| 513 | 513 | DCL I ACDR |
| 514 | 514 | RETURN MEMORY(I) |
| 515 | 515 | END GETMEM |
| 517 | 517 | ^PUTMEM: PROC(I,J) |
| 518 | 518 | DCL I ADDR, J BYTE |
| 519 | 519 | MEMORY(I) = J |
| 520 | 520 | END PUTMEM |
| 522 | 522 | TRANSFER: PROC(I,J) |
| 523 | 523 | DCL (I,J) ADDR |
| 524 | 524 | CALL PUTMEM(I,GETMEM(J)) |
| 525 | 525 | END TRANSFER |
| 527 | 527 | DCL(DISTANCE. TDIST) COMSIZE, |
| 528 | 528 | (DIRECTION, CHAR) BYTE, |
| 529 | 529 | ( FRONT, BACK, FIRST, LAST) ADDR |
| 531 | 531 | SETFF: PROCEDURE |
| 532 | 532 | DISTANCE = 0FFFFH |
| 533 | 533 | END SETFF |
| 535 | 535 | DISTZERO: PROCEDURE BYTE |
| 537 | 537 | RETURN DISTANCE = 0 |
| 538 | 538 | END DISTZERO |
| 540 | 540 | ZERODIST: PROCEDURE |
541 926 | 541 926 | DISTANCE = 0 |
| 542 | 542 | END ZERODIST |
| 544 | 544 | DISTNZERO: PROCEDURE BYTE |
| 546 | 546 | IF NOT DISTZERO THEN |
| 547 | 547 | DISTANCE = DISTANCE - 1 |
| 551 | 551 | END NDISTNZERO |
| 553 | 553 | SETLIMITS: PROC |
| 554 | 554 | DCL(I,K,L,M) ADDR,(MIDDLE,LOOPING) BYTE |
555 575 611 | 555 575 611 | IF DIRECTION = BACKWARD THEN |
| 556 | 556 | DISTANCE = DISTANCE+1 |
| 556 | 556 | I = FRONT |
| 556 | 556 | L = 0 |
| 556 | 556 | K * 0FFFFH |
| 558 | 558 | I = BACK |
| 558 | 558 | L = MAXM |
| 558 | 558 | K = 1 |
| 561 | 561 | LOOPING = TRUE |
| 562 | 562 | DO WHILE LOOPING |
| 563 | 563 | DO WHILE(MIDDLE := I <> L) AND |
| 564 | 564 | GETMEM(M := I+K) <> LF |
| 565 | 565 | I = M |
| 567 | 567 | LOOPING =(DISTANCE := DISTANCE - 1) <> 0 |
| 568 | 568 | IF NOT MIDDLE THEN |
| 569 | 569 | LOOPING = FALSE |
| 570 | 570 | I = I - K |
| 572 | 572 | IF LOOPING THEN I = M |
576 667 1141 | 576 667 1141 | FIRST = I |
| 576 | 576 | LAST = FRONT - 1 |
| 578 | 578 | FIRST = BACK + I |
| 578 | 578 | LAST = I + 1 |
| 580 | 580 | END SETLIMITS |
| 582 | 582 | SETPTRS: PROCEDURE |
| 583 | 583 | IF DIRECTION = FORWARD THEN BACK-LAST |
| 583 | 583 | ELSE FRONT=FIRST |
| 584 | 584 | END SETPTRS |
| 586 | 586 | INCFRONT: PROC |
| 586 | 586 | FRONT = FRONT + 1 |
| 587 | 587 | END INCFRONT |
| 588 | 588 | INCBACK: PROCEDURE |
| 588 | 588 | BACK = BACK + 1 |
| 589 | 589 | END INCBACK |
| 590 | 590 | DECFRONT: PROC |
| 590 | 590 | FRONT = FRONT - 1 |
| 591 | 591 | END DECFRONT |
| 592 | 592 | DECBACK: PROC |
| 592 | 592 | BACK = BACK - 1 |
| 593 | 593 | END DECBACK |
| 595 | 595 | MOVER: PROC |
| 596 | 596 | IF DIRECTION = FORWARD THEN |
| 597 | 597 | DO WHILE BACK < LAST |
597 649 | 597 649 | CALL INCBACK |
| 598 | 598 | CALL TRANSFER(FRONT,BACK) |
598 637 697 | 598 637 697 | CALL INCFRONT |
| 600 | 600 | DO WHILE FRONT > FIRST |
600 930 | 600 930 | CALL DECFRONT |
| 601 | 601 | CALL TRANSFER(BACK,FRONT) |
| 601 | 601 | CALL DECBACK |
| 603 | 603 | END MOVER |
| 605 | 605 | MOVELINES: PROC |
606 761 926 1030 | 606 761 926 1030 | CALL SETLIMITS |
607 668 675 738 1014 1019 1080 1087 1115 1141 | 607 668 675 738 1014 1019 1080 1087 1115 1141 | CALL MOVER |
| 608 | 608 | END MOVELINES |
| 610 | 610 | SETCLIMITS: PROC |
612 667 | 612 667 | LAST = BACK |
| 613 | 613 | IF DISTANCE > FRONT THEN |
614 1014 | 614 1014 | FIRST = 1 |
| 614 | 614 | ELSE FIRST = FRONT - DISTANCE |
616 1080 | 616 1080 | FIRST = FRONT |
| 617 | 617 | IF DISTANCE >= MAX - BACK THEN |
618 1014 1080 | 618 1014 1080 | LAST = MAXM |
| 618 | 618 | ELSE LAST = BACK + DISTANCE |
| 620 | 620 | END SETCLIMITS |
| 622 | 622 | READLINE: PROCEDURE |
| 625 | 625 | CTRAN: PROCEDURE(B) BYTE |
| 626 | 626 | DECLAPE B BYTE |
| 628 | 628 | IF UPPER THEN RETURN UTRAN(B) |
| 630 | 630 | END CTRAN |
631 645 889 | 631 645 889 | DO FOREVER |
| 632 | 632 | IF FRONT >= BACK THEN GO TO OVERFLOW |
| 633 | 633 | IF (B := CTRAN(GETSOURCE)) = ENDFILE THEN |
634 647 | 634 647 | CALL ZERODIST |
| 636 | 636 | CALL PUTMEM(FRONT, B) |
638 651 | 638 651 | IF B = LF THEN RETURN |
| 640 | 640 | END READLINE |
| 642 | 642 | WRITELINE: PROCEDURE |
| 646 | 646 | IF BACK >= MAXM THEN |
| 650 | 650 | CALL PUTDEST(B:=GETMEM(BACK)) |
| 653 | 653 | END WRITELINE |
| 655 | 655 | WRHALF: PROCEDURE |
657 681 815 984 | 657 681 815 984 | CALL SETFF |
658 671 816 1042 1084 1095 1106 1134 1155 1175 | 658 671 816 1042 1084 1095 1106 1134 1155 1175 | DO WHILE DISTNZERO |
| 659 | 659 | IF HMAX >= (MAXM - BACK) THEN CALL ZERODIST |
660 672 | 660 672 | CALL WRITELINE |
| 662 | 662 | END WRHALF |
| 664 | 664 | WRITEOUT: PROCEDURE |
667 925 980 1087 1115 1141 | 667 925 980 1087 1115 1141 | DIRECTION = BACKWARD |
| 669 | 669 | IF DISTZERO THEN CALL WRHALF |
| 674 | 674 | IF BACK < LAST THEN |
675 791 809 1039 1142 | 675 791 809 1039 1142 | DIRECTION = FORWARD |
| 677 | 677 | END WRITEOUT |
| 679 | 679 | CLEARMEM, PROCEDURE |
682 1168 | 682 1168 | CALL WRITEOUT |
| 683 | 683 | END CLEARMEM |
| 685 | 685 | TERMINATE: PROCEDURE |
687 1138 | 687 1138 | CALL CLEARMEM |
| 688 | 688 | DO WHILE(CHAR := GETSOURCE) <> ENDFILE |
| 689 | 689 | CALL PUTDEST(CHAR) |
| 691 | 691 | CALL FINIS |
| 692 | 692 | END TERMINATE |
| 694 | 694 | INSERT: PROCEDURE |
| 696 | 696 | IF FRONT = BACK THEN GO TO OVERFLOW |
| 697 | 697 | CALL PUTMEM(FRONT,CHAR) |
| 698 | 698 | END INSERT |
| 700 | 700 | SCANNING: PROCEDURE BYTE |
| 702 | 702 | RETURN NOT((CHAR := READC) = ENDFILE OR |
| 703 | 703 | (CHAR = CR AND NOT INSERTING)) |
| 704 | 704 | END SCANNING |
| 706 | 706 | COLLECT: PROCEDURE |
| 711 | 711 | SETSCR: PROCEDURE |
| 712 | 712 | SCRATCH(WBE) = CHAR |
| 713 | 713 | IF(WBE := WBE + 1) > LAST(SCRATCH) THEN GO TO OVERFLOW |
| 714 | 714 | END SETSCR |
715 921 949 | 715 921 949 | DO WHILE SCANNING |
| 716 | 716 | IF CHAR = CTLL THEN |
717 824 | 717 824 | CHAR = CR |
717 721 | 717 721 | CALL SETSCR |
718 825 | 718 825 | CHAR = LF |
| 720 | 720 | IF CHAR = 0 THEN GO TO RESET |
| 723 | 723 | END COLLECT |
| 725 | 725 | FIND: PROCEDURE(PA,PB) BYTE |
| 726 | 726 | DECLARE(PA, PB) BYTE |
| 728 | 728 | DECLARE J ADDRESS |
| 729 | 729 | (K, MATCH) BYTE |
| 730 | 730 | J = BACK |
| 730 | 730 | MATCH = FALSE |
| 731 | 731 | DO WHILE NOT MATCH AND (MAXM > J) |
| 732 | 732 | LAST,J = J + 1 |
| 732 | 732 | K = PA |
| 733 | 733 | DO WHILE SCRATCH(K) = MEMORY(LAST) AND NOT (MATCH := K = PB) |
| 734 | 734 | K = K + 1 |
| 734 | 734 | LAST = LAST + 1 |
| 737 | 737 | IF MATCH THEN |
| 738 | 738 | LAST = LAST - 1 |
| 740 | 740 | RETURN MATCH |
| 741 | 741 | END FIND |
| 743 | 743 | SETFIND: PROCEDURE |
| 745 | 745 | USE = 0 |
745 1102 1103 1152 | 745 1102 1103 1152 | CALL COLLECT |
| 745 | 745 | WBP = WBE |
| 746 | 746 | END SETFIND |
| 748 | 748 | CHKFOUND: PROCEDURE |
| 750 | 750 | IF NOT FIND(0,WBP) THEN GO TO OVERCOUNT |
| 751 | 751 | END CHKFOUND |
| 754 | 754 | SETRFCB |
| 756 | 756 | RFCB((RBP := RBP + 1) - 1) = CHAR |
| 757 | 757 | END SETRFCB |
| 759 | 759 | TYPELINES: PROCEDURE |
| 760 | 760 | DCL I ADDR |
| 762 | 762 | IF GETMEM(FIRST - 1) = LF AND COLUMN <> 0 THEN |
763 881 924 | 763 881 924 | CALL PRINTC(CR) |
| 765 | 765 | DO I = FIRST TO LAST |
| 766 | 766 | IF BREAK$KEY THEN |
| 768 | 768 | CALL PRINTC(GETMEM(I)) |
| 770 | 770 | END TYPELINES |
| 772 | 772 | SETLPP: PROCEDURE |
| 774 | 774 | DISTANCE = LPP |
| 775 | 775 | END SETLPP |
| 777 | 777 | SAVEDIST: PROCEDURE |
| 778 | 778 | TDIST = DISTANCE |
| 779 | 779 | END SAVEDIST |
| 781 | 781 | RESTDIST: PROCEDURE |
| 782 | 782 | DISTANCE = TDIST |
| 783 | 783 | END RESTDIST |
| 785 | 785 | ^PAGE: PROCEDURE |
787 1138 | 787 1138 | CALL SAVEDIST |
788 792 1040 | 788 792 1040 | CALL SETLPP |
789 1060 | 789 1060 | CALL MOVELINES |
| 790 | 790 | I = DIRECTION |
| 793 | 793 | CALL TYPELINES |
| 794 | 794 | DIRECTION = I |
| 795 | 795 | IF LAST = MAXM OR FIRST = 1 THEN CALL ZERODIST |
| 796 | 796 | ELSE CALL RESTDIST |
| 797 | 797 | END PAGE |
| 799 | 799 | WAIT: PROCEDURE |
| 802 | 802 | DO I = 0 TO 19 |
| 804 | 804 | CALL TIME(250) |
| 806 | 806 | END WAIT |
| 808 | 808 | SETFORWARD: PROCEDURE |
| 810 | 810 | DISTANCE = 1 |
| 811 | 811 | END SETFORWARD |
| 813 | 813 | APPHALF: PROCEDURE |
| 817 | 817 | IF FRONT >= HMAX THEN CALL ZERODIST |
818 1085 | 818 1085 | CALL READLINE |
| 820 | 820 | END APPHALF |
| 822 | 822 | INSCRLF: PROCEDURE |
824 825 933 964 1109 1162 | 824 825 933 964 1109 1162 | CALL INSERT |
| 826 | 826 | END INSCRLF |
| 828 | 828 | TESTCASE: PROCEDURE |
| 829 | 829 | DECLARE T BYTE |
832 947 | 832 947 | TRANSLATE = TRUE |
| 833 | 833 | T = LOWERCASE(CHAR) |
| 834 | 834 | CHAR = UTRAN(CHAR) |
| 835 | 835 | TRANSLATE = UPPER OR NOT T |
| 836 | 836 | END TESTCASE |
| 838 | 838 | READCTRAN: PROCEDURE |
| 840 | 840 | TRANSLATE = FALSE |
| 841 | 841 | CHAR = READC |
| 842 | 842 | CALL TESTCASE |
| 843 | 843 | END READCTRAN |
| 845 | 845 | SINGLECOM: PROCEDURE(C) BYTE |
| 848 | 848 | RETURN CHAR= C AND CONLEN = 1 AND MP |
| 849 | 849 | END SINGLECOM |
| 852 | 852 | MAX = MAXB - MEMORY - 1 |
| 853 | 853 | MEMORY(MAX) = 0 |
| 854 | 854 | MAXM = MAX - 1 |
| 855 | 855 | HMAX = SHR(MAXM,1) |
| 857 | 857 | UPPER = FALSE |
| 859 | 859 | IF (FCB(l) = ) OR (FCB(17) <> ) THEN CALL FERR |
| 860 | 860 | IF (SDISK := FCB)= 0 THEN SDISK = CSELECT |
| 861 | 861 | SDISK = SDISK - 1 |
| 861 | 861 | FCB = 0 |
| 863 | 863 | IF (DDISK := FCB(16)) = 0 THEN DDISK = SDISK |
| 864 | 864 | DDISK = DDISK - 1 |
| 866 | 866 | RESTART: |
| 867 | 867 | CALL SETUP |
| 868 | 868 | MEMORY = LF |
| 869 | 869 | FRONT = 1 |
| 869 | 869 | BACK = MAXM |
| 871 | 871 | GO TO START |
| 873 | 873 | OVERCOUNT: FLAG = POUND |
| 875 | 875 | BADCOM: FLAG = WHAT |
| 877 | 877 | OVERFLOW: |
| 878 | 878 | FLAG = |
| 880 | 880 | RESET: |
| 883 | 883 | CALL PRINTC(FLAG) |
| 886 | 886 | START: |
| 887 | 887 | READBUFF = TRUE |
| 888 | 888 | MP = 0 |
| 900 | 900 | INSERTING = FALSE |
901 980 984 988 991 | 901 980 984 988 991 | CALL READCTRAN |
| 902 | 902 | MI = CBP |
903 910 943 969 | 903 910 943 969 | IF SINGLECOM( ) THEN |
904 911 | 904 911 | CALL TERMINATE |
| 905 | 905 | IF SDISK <> DDISK THEN BDISK = DDISK |
| 912 | 912 | CHAR = DDISK |
| 912 | 912 | DDISK = SDISK |
| 912 | 912 | SDISK = CHAR |
914 944 | 914 944 | GO TO RESTART |
918 945 979 1012 1018 1023 1029 1037 1048 1053 1078 1092 1100 1131 1150 1167 1170 | 918 945 979 1012 1018 1023 1029 1037 1048 1053 1078 1092 1100 1131 1150 1167 1170 | IF CHAR = THEN |
| 920 | 920 | INSERTING = (CBP = COMLEN) AND(MP = 0) |
| 922 | 922 | DO WHILE CHAR <> O |
| 923 | 923 | IF CHAR = CTLU THEN |
926 1025 1031 | 926 1025 1031 | CALL SETPTRS |
| 928 | 928 | IF CHAR = RUBOUT THEN |
| 929 | 929 | IF FRONT = 1 THEN GO TO RESET |
| 930 | 930 | CALL PRINTC(GETMEM(FRONT)) |
| 932 | 932 | IF CHAR = CTLL THEN CALL INSCRLF |
934 1057 | 934 1057 | IF CHAR = CR THEN |
| 935 | 935 | CALL PRINTNMAC(CHAR:=LF) |
| 935 | 935 | ELSE CHAR=0 |
| 938 | 938 | IF CHAR <> ENDFILE THEN |
| 939 | 939 | CALL INSCRLF |
| 948 | 948 | RBP = 1 |
| 950 | 950 | IF RBP > 0 THEN GO TO OVERCOUNT |
951 955 | 951 955 | CALL SETRFCB |
| 953 | 953 | CHAR = |
| 954 | 954 | DO WHILE RBP <= 8 |
| 957 | 957 | RFCB(12), RFCB(32) = 0 |
| 958 | 958 | CALL OPEN(RFCB):= RBP = 80H |
| 960 | 960 | FLAG = GO TO RESET |
| 962 | 962 | DO WHILE (CHAR := READFILE) <> ENDFILE |
| 963 | 963 | IF UPPER THEN CHAR = UTRAN(CHAR) |
| 970 | 970 | CALL DELETE(DFCB) |
| 976 | 976 | DCL I BYTE |
977 1060 | 977 1060 | CALL SETFORWARD |
| 983 | 983 | IF CHAR = POUND THEN |
| 987 | 987 | IF (I:=CHAR- )<= 9 THEN |
| 988 | 988 | DISTANCE = I |
| 989 | 989 | DO WHILE (I := CHAR - ) <= 9 |
| 990 | 990 | DISTANCE = SHL(DISTANCE,3) + SHL(DISTANCE,1) * I |
| 994 | 994 | IF DISTZERO THEN DIRECTION = BACKWARD |
| 1013 | 1013 | DIRECTION = 1 - DIRECTION |
1019 1024 | 1019 1024 | CALL SETCLIMITS |
| 1035 | 1035 | IF CHAR = THEN CALL MOVELINES |
1038 1172 | 1038 1172 | IF DISTZERO THEN |
1040 1049 1060 | 1040 1049 1060 | CALL TYPELlNES |
| 1042 | 1042 | CALL PAGE |
1043 1175 | 1043 1175 | CALL WAIT |
| 1054 | 1054 | UPPER = DIRECTION = FORWARD |
| 1059 | 1059 | IF MI = 1 AND MP = 0 THEN |
| 1065 | 1065 | IF DIRECTION = FORWARD OR DISTZERO THEN |
| 1082 | 1082 | IF DISTZERO THEN CALL APPHALF |
1093 1102 1133 1151 | 1093 1102 1133 1151 | CALL SETFIND |
1095 1106 1156 | 1095 1106 1156 | CALL CHKFOUND |
| 1101 | 1101 | DECLARE T ADDRESS |
| 1103 | 1103 | WBJ = WBE |
| 1107 | 1107 | MI = WBP - 1 |
| 1108 | 1108 | DO WHILE(MI := MI + 1) < WBJ |
1109 1161 | 1109 1161 | CHAR = SCRATCH(MI) |
| 1111 | 1111 | T = FRONT |
| 1112 | 1112 | IF NOT FIND(WBJ,WBE) THEN GO TO OVERCOUNT |
| 1114 | 1114 | FIRST = FRONT -(WBE - WBJ) |
| 1117 | 1117 | FRONT = T |
| 1122 | 1122 | IF CHAR = AMD MP = 0 THEN |
| 1123 | 1123 | XP = 255 |
| 1124 | 1124 | IF DISTANCE = 1 THEN CALL ZERODIST |
| 1125 | 1125 | DO WHILE (MACRO(XP := XP + 1) = READC) <> CR |
| 1127 | 1127 | MP = XP |
| 1127 | 1127 | MT = DISTANCE |
| 1136 | 1136 | DO WHILE NOT FIND(0,WBP) |
| 1140 | 1140 | CALL APPHALF |
| 1142 | 1142 | CALL RESTDIST |
| 1144 | 1144 | IF BACK >= MAXM THEN GO TO OVERCOUNT |
| 1159 | 1159 | FRONT = FRONT - (MI := WBP) |
| 1160 | 1160 | DO WHILE MI< WBE |
| 1162 | 1162 | MI = MI + 1 |
| 1173 | 1173 | IF READCHAR = ENDFILE THEN GO TO RESET |
| 1178 | 1178 | IF CHAR <> 0 THEN |
1180 1182 | 1180 1182 | GO TO BADCOM |
| Matching Comments and Strings |
| File1 Line# |
File2 Line# |
Comment/String |
| 1 | 1 | E D , T H E C P / M C O N T E X T E D I T O R |
| 2 | 2 | 0005H |
| 3 | 3 | COPYRIGHT (C) 1976 |
| 4 | 4 | DIGITAL RESEARCH |
| 5 | 5 | BOX 579 PACIFIC GROVE |
| 6 | 6 | CALIFORNIA 93950 |
| 8 | 8 | COPYRIGHT (C) 1976, DIGITAL RESEARCH |
| 10 | 10 | COMMAND FUNCTION |
| 11 | 11 | ------- -------- |
| 12 | 12 | A APPEND LINES OF TEXT TO BUFFER |
| 13 | 13 | B MOVE TO BEGINNING OR END OF TEXT |
| 14 | 14 | C SKIP CHARACTERS |
15 1002 | 15 1002 | D DELETE CHARACTERS |
| 16 | 16 | E END OF EDIT |
| 17 | 17 | F FIND STRING IN CURRENT BUFFER |
| 18 | 18 | H MOVE TO TOP OF FILE (HEAD) |
| 19 | 19 | I INSERT CHARACTERS FROM KEYBOARD |
| 20 | 20 | UP TO NEXT (ENDFILE) |
| 21 | 21 | J JUXTAPOSITION OPERATION - SEARCH FOR FIRST STRING, |
| 22 | 22 | INSERT SECOND STRING, DELETE UNTIL THIRD STRING |
| 23 | 23 | K DELETE LINES |
| 24 | 24 | L SKIP L INES |
| 25 | 25 | M MACRO DEFINITION (SEE COMMENT BELOW) |
| 26 | 26 | N FIND NEXT OCCURRENCE OF STRING |
| 27 | 27 | WITH AUTO SCAN THROUGH FILE |
| 28 | 28 | O RE-EDIT OLD FILE |
| 29 | 29 | P PAGE AND DISPLAY (MOVES UP OR DOWN 24 LINES AND |
| 30 | 30 | DISPLAYS 24 LINES) |
| 31 | 31 | Q OUIT EDIT WITHOUT UPDATING THE FILE |
| 32 | 32 | R<FILENAME> READ FROM FILE <FILENAME>.LIB UNTIL <ENDFILE> AND |
| 33 | 33 | INSERT INTO TEXT |
| 34 | 34 | S SEARCH FOR FIRST STRING, REPLACE BY SECOND STRING |
35 1006 | 35 1006 | T TYPE LINES |
| 36 | 36 | U MOVE UP LINES (SAME AS -HP) |
| 37 | 37 | W WRITE LINES OF TEXT TO FILE |
| 38 | 38 | Z SLEEP FOR 1/2 SECOND (USED IN MACROS TO STOP DISPLAY) |
| 39 | 39 | <CR> MOVE UP OR DOWN AND PRINT ONE LINE |
| 41 | 41 | A NUMBER OF COMMANDS CAN BE PRECEDED BY A POSITIVE OR |
| 42 | 42 | NEGATIVE INTEGER BETWEEN 0 AND 65535 (1 IS DEFAULT IF NO VALUE |
| 43 | 43 | IS SPECIFIED). TNIS VALUE DETERMINES THE NUMBER OF TIMES THE |
| 44 | 44 | COMMAND IS APPLIED BEFORE RETURNING FOR ANOTHER COMMAND. |
45 48 51 54 | 45 48 51 54 | THE COMMANDS |
| 46 | 46 | C D K L T P U <CR> |
| 47 | 47 | CAN BE PRECEDED BY AN UNSIGNED, POSITIVE, OR NEGATIVE NUMBER. |
| 49 | 49 | A F J N W Z |
| 50 | 50 | CAN BE PRECEDED BY AN UNSIGNED OR POSITIVE NUMBER. |
| 52 | 52 | E H D Q |
| 53 | 53 | CANNOT BE PRECEDED BY AN UNSIGNED OR POSITIVE NUMBER. |
| 55 | 55 | F I J M R S |
| 56 | 56 | ARE ALL FOLLOWED BY ONE OR MORE STRINGS OF CHARACTERS WHICH CAN |
| 57 | 57 | BE OPTIONALLY SEPARATED OR TERMINATED BY EITHER <ENDFILE> OR <CR>. |
| 58 | 58 | THE <ENDFILE> IS GENERALLY USED TO SEPARATE THE SEARCH STRINGS |
| 59 | 59 | IN THE S AMD J COMMANDS, AND IS USED AT THE END OF THE COMMANDS IF |
| 60 | 60 | ADDITIONAL COMMANDS FOLLOW. FOR EXAMPLE. THE FOLLOWING COMMAND |
| 61 | 61 | SEQUENCE SEARCHES FOR THE STRING 'GAMMA', SUBSTITUTES THE STRING |
| 62 | 62 | 'DELTA', AND THEN TYPES THE FIRST PART OF THE LINE WHERE THE |
| 63 | 63 | CHANGE OCCURRED, FOLLOWED BY THE REMAINDER OF THE LINE WHICH WAS |
| 64 | 64 | CHANGED. |
| 65 | 65 | SGAMMA<ENDFILE>NDELTA<ENDFILE>ATT<CR> |
| 67 | 67 | THE CONTROL-L CHARACTER IN SEARCH AND SUBSTITUTE STRINGS IS |
| 68 | 68 | REPLACED ON INPUT BY <CR><LF> CHARACTERS THE CONTROL-I KEY |
| 69 | 69 | IS TAKEN AS A TAB CHARACTER. |
| 71 | 71 | THE COMMAND R MUST BE FOLLOWED BY A FILE NAME (WITH ASSUMED FILE |
| 72 | 72 | TYPE OF 'LIB`) WITH A TRAILING <CR> OR <ENDFILE>. THE COMMAND |
| 73 | 73 | I IS FOLLOWED BY A STRING OF SYMBOLS TO INSERT. TERMINATED BY |
| 74 | 74 | A <CR> OR <ENDFILE>. IF SEVERAL LINES OF TEXT ARE TO BE INSERTED, |
| 75 | 75 | THE I CAN BE DIRECTLY FOLLOWED BY AN <ENDFILE> OR <CR> IN WHICH |
| 76 | 76 | CASE THE EDITOR ACCEPTS LINES OF INPUT TO THE NEXT <ENDFILE>. |
| 77 | 77 | THE COMMAND 0T PRINTS THE FIRST PART OF THE CURRENT LINE, |
| 78 | 78 | AND THE COMMAND 0L MOVES THE REFERENCE TO THE BEGINNING OF THE |
| 79 | 79 | CURRENT LINE. THE COMMAND 0P PRINTS THE CURRENT PAGE ONLY. WHILE |
| 80 | 80 | THE COMMAND 0Z READS THE CONSOLE RATHER THAN WAITING (THIS IS USED |
| 81 | 81 | AGAIN WITHIN MACROS TO STOP THE DISPLAY - THE MACRO EXPANSION |
| 82 | 82 | STOPS UNTIL A CHARACTER IS READ. IF THE CHARACTER IS NOT A BREAK |
| 83 | 83 | THEN THE MACRO EXPANSION CONTINUES NORMALLY) |
| 85 | 85 | NOTE THAT A POUND SIGN IS TAKEN AS THE NUMBER 65535, ALL |
| 86 | 86 | UNSIGNED NUMBERS ARE ASSUMED POSITIVE, AND A SINGLE - IS ASSUMED -1 |
| 88 | 88 | A NUMBER OF COMMANDS CAN BE GROUPED TOGETHER AND EXECUTED |
| 89 | 89 | REPETITIVELY USING THE MACRO COMMAND WHICH TAKES THE FORM |
| 91 | 91 | <NUMBER>MC1C2...CN<DELIMITER> |
| 93 | 93 | WHERE <NUMBER> IS A NON-NEGATIVE INTEGER N, AND <DELIMITER> IS |
| 94 | 94 | <ENDFILE> OR <CR>. THE COMMANDS Cl ... CN FOLLOWING THE M ARE |
| 95 | 95 | EXECUTED N TIMES, STARTING AT THE CURRENT POSITION IN THE BUFFER. |
| 96 | 96 | IF N IS 0, 1, OR OMITTED, THE COMMANDS ARE EXECUTED UNTIL THE END |
| 97 | 97 | IF THE BUFFER IS ENCOUNTERED. |
| 99 | 99 | THE FOLLOWING MACRO, FOR EXAMPLE, CHANGES ALL OCCURRENCES OF |
| 100 | 100 | THE NAME 'GAMMA' TO 'DELTA', AND PRINTS THE LINES WHICH |
| 101 | 101 | WERE CHANGED, |
| 103 | 103 | MFGAMMA<ENDFILE>-5DIDELTA<ENDFILE>0LT<CR> |
| 105 | 105 | (NOTE, AN <ENDFILE> IS THE CP/M END OF FILE MARK - CONTROL-Z) |
| 107 | 107 | IF ANY KEY IS DEPRESSED DURING TYPING OR MACRO EXPANSION. THE |
| 108 | 108 | FUNCTION IS CONSIDERED TERMINATED, AND CONTROL RETURNS TO THE |
| 109 | 109 | OPERATOR. |
| 111 | 111 | ERROR CONDITIONS ARE INDICATED BY PRINTING ONE OF THE CHARACTERS, |
| 113 | 113 | SYMBOL ERROR CONDITION |
| 114 | 114 | ------ ---------------------------------------------------- |
| 115 | 115 | GREATER FREE MEMORY IS EXHAUSTED - ANY COMMAND CAN 8E ISSUED |
| 116 | 116 | WHICH DOES NOT INCREASE MEMORY REQUIREMENTS. |
| 117 | 117 | QUESTION UNRECOGNIZED COMMAND OR ILLEGAL NUMERIC FIELD |
| 118 | 118 | POUND CANNOT APPLY THE COMMAND THE NUMBER OF TINES SPECIFIED |
| 119 | 119 | (OCCURS IF SEARCH STRING CANNOT BE FOUND). |
| 120 | 120 | LETTER O CANNOT OPEN <FILENAME>.LIB IN R COMMAND |
| 122 | 122 | THE ERROR CHARACTER IS ALSO ACCOMPANIED BY THE LAST CHARACTER |
| 123 | 123 | SCANNED WHEN THE ERROR OCCURRED. |
| 125 | 125 | LITERALLY |
| 126 | 126 | DECLARE |
| 127 | 127 | PROCEDURE |
128 417 | 128 417 | ADDRESS |
| 129 | 129 | 0CH |
| 130 | 130 | 15H |
| 130 | 130 | LINE DELETE IN INSERT MODE |
| 131 | 131 | 110$0001B |
| 131 | 131 | LOWER CASE A |
| 132 | 132 | 111$1010B |
| 132 | 132 | LOWER CASE Z |
| 133 | 133 | 1AH |
| 133 | 133 | CP/M END OF FILE |
| 135 | 135 | MONITOR LOCATION |
| 136 | 136 | FILLED FROM MAXA |
| 137 | 137 | MINUS 1 |
| 138 | 138 | HALF THE VALUE OF MAXM |
| 139 | 139 | TEMP TO COMPUTE ADDR |
| 141 | 141 | NUMBER OF BUFFERS-1 |
| 142 | 142 | 1024 |
| 142 | 142 | (NBUF+1) * 128 |
| 143 | 143 | BOOT DISK ADDRESS |
| 144 | 144 | BOOT DISK VALUE |
| 146 | 146 | DEFAULT FCB AT 5CH |
| 147 | 147 | DISK IO BUFFER ADDRESS |
| 148 | 148 | READER FILE CONTROL BLOCK |
| 149 | 149 | FILE NAME |
| 150 | 150 | FILE TYPE |
| 150 | 150 | LIB |
| 151 | 151 | READ BUFFER POINTER |
| 152 | 152 | DISKI0 BUFFER |
| 153 | 153 | SOURCE FILE CONTROL |
| 154 | 154 | SOURCE BUFFER |
| 155 | 155 | DEST FILE CONTROL BLOCK |
| 156 | 156 | DESTINATION BUFFER |
| 157 | 157 | NEXT SOURCE CHARACTER |
| 158 | 158 | NEXT DESTINATION CHAR |
| 160 | 160 | SOURCE FILE DISK |
| 161 | 161 | DESTINATION FILE DISK |
| 162 | 162 | IO SECTION |
| 175 | 175 | WHILE TRUE |
| 250 | 250 | CLEAR CHAR |
| 257 | 257 | RETURN CURRENT DRIVE NUMBER |
| 263 | 263 | SET DRIVE NUMBER |
| 269 | 269 | SET DMA ADDRESS |
| 274 | 274 | LIFT HEAD ON SA 3900 DISK |
| 277 | 277 | INPUT / OUTPUT SUFFERING ROUTINES |
| 289 | 289 | FILE ERROR$ |
| 302 | 302 | REEL AND RECORD ZEROED |
| 303 | 303 | COPY NAME TO DESTINATION FCB |
| 305 | 305 | SOURCE AND DESTINATION DISKS SET |
| 311 | 311 | NEW FILE$ |
314 398 | 314 398 | BAK |
| 317 | 317 | REMOVE BAK FILES FROM DESTINATION DISK |
321 404 | 321 404 | $$$ |
| 324 | 324 | NEXT RECORD IS ZERO |
| 326 | 326 | THE TEMP FILE IS NQU CREATED |
| 359 | 359 | WRITE OUTPUT BUFFER UP TO(NOT INCLUDING) NDEST. |
| 360 | 360 | LOW 7 BITS OF NDEST ARE ZERO |
| 389 | 389 | CLEAR OUTPUT |
| 397 | 397 | RENAME OLD FILE TO BAX |
| 403 | 403 | RENAME $$$ TO OLD NAME |
| 410 | 410 | LINES PER PAGE |
| 413 | 413 | 07FH |
| 414 | 414 | 23H |
| 415 | 415 | 128 |
| 415 | 415 | MAX MACRO SIZE |
| 416 | 416 | 100 |
| 416 | 416 | SCRATCH BUFFER SIZE |
| 417 | 417 | DETERMINES MAX COMMAND NUMBER |
| 420 | 420 | SCRATCH BUFFER FOR F,N,S |
| 421 | 421 | END OF F STRING, S STRING, J STRING |
| 427 | 427 | TRUE IF INSERTING CHARACTERS |
| 428 | 428 | TRUE IF END OF READ BUFFER |
| 431 | 431 | 11Q |
| 432 | 432 | 0FFH |
| 453 | 453 | PRINT IF NOT IN MACRO EXPANSION |
| 458 | 458 | TRUE IF TRANSLATION TO UPPER CASE |
| 459 | 459 | TRUE IF GLOBALLY TRANLATING TO UC |
| 463 | 463 | RETURN TRUE IF LOWER CASE ALPHABETIC |
| 469 | 469 | TRANSLATE TO UPPER CASE IF ALPHABETIC LOWER AND TRANSLATE |
| 475 | 475 | MAY BE MACRO EXPANSION |
| 480 | 480 | START AGAIN |
| 491 | 491 | GET COMMAND LINE |
| 536 | 536 | RETURN TRUE IF DISTANCE IS ZERO |
| 545 | 545 | CHECK FOR ZERO DISTANCE AND DECREMENT |
| 624 | 624 | READ ANOTHER LINE OF INPUT |
| 627 | 627 | CONDITIONALLY TRANSLATE TO UPPER CASE ON INPUT |
| 643 | 643 | WRITE ONE LINE OUT |
| 646 | 646 | EMPTY |
| 656 | 656 | WRITE LINES UNTIL AT LEAST HALF THE BUFFER IS EMPTY |
| 665 | 665 | WRITE LINES DETERMINED BY 'DISTANCE', |
| 666 | 666 | CALLED FROM W AND E COMMANDS |
| 670 | 670 | DISTANCE = 0 IF CALL WRHALF |
| 680 | 680 | CLEAR MEMORY BUFFER |
| 686 | 686 | CLEAR BUFFERS |
| 695 | 695 | INSERT CHAR INTO MEMORY BUFFER |
| 701 | 701 | READ A CHARACTER AND CHECK FOR ENDFILE OR CR |
| 707 | 707 | READ COMMAND BUFFER AND INSERT CHARACTERS INTO |
| 708 | 708 | SCRATCH 'TIL NEXT CONTROL-Z OR CR FOR FIND, NEXT, JUXT, OR |
| 709 | 709 | SUBSTITUTE COMMANDS - FILL AT WBE AND INCREMENT WBE SO IT |
| 710 | 710 | ADDRESSES NEXT EMPTY POSITION OF SCRATCH |
| 727 | 727 | FIND THE STRING IN SCRATCH STARTING AT PA AND ENDING AT PB |
| 731 | 731 | START SCAN AT J |
| 732 | 732 | ATTEMPT STRING MATCH AT K |
| 737 | 737 | MOVE STORAGE |
| 744 | 744 | SETUP THE SEARCH STRING FOR F,N, AND S COMMANDS |
| 749 | 749 | CHECK FOR FOUND STRING IN F AND S COMMANDS |
| 750 | 750 | NO MATCH |
| 755 | 755 | PLACE CHAR INTO READ FILE CONTROL BLOCK AND INCREMENT |
| 773 | 773 | SET DISTANCE TO LINES PER PAGE |
| 800 | 800 | 1/2 SECOND TIME OUT |
| 814 | 814 | APPEND 'TIL BUFFER IS AT LEAST HALF FULL |
| 815 | 815 | DISTANCE = 0FFFFH |
| 823 | 823 | INSERT CR LF CHARACTERS |
| 830 | 830 | TEST FOR UPPER OR LOWER CASE COMMAND AND SET TRANSLATE |
| 831 | 831 | FLAG (USED TO DETERMINE IF CHARACTERS WHICH FOLLOW GO TO UPPER |
| 839 | 839 | SET TPANSLATE TO FALSE AND READ NEXT CHARACTER |
| 846 | 846 | RETURN TRUE IF COMMAND IS ONLY CHARACTER, NOT IN MACRO |
| 851 | 851 | INITIALIZE THE SYSTEM |
| 853 | 853 | STOPS MATCH AT END OF BUFFER |
| 856 | 856 | INITIALLY ASSUME NO TRANSLATE TO UPPER CASE |
| 858 | 858 | GET SOURCE AND DESTINATION DISKS |
| 861 | 861 | CLEAR DISK NAME |
| 877 | 877 | ARRIVE HERE ON OVERFLOW CONDITION (I,P,S COMMAND) |
| 880 | 880 | ARRIVE HERE OH SYSTEM RESET OR OVERFLOW CONDITION |
| 889 | 889 | OR UNTIL THE POWER IS TURNED OFF |
890 898 998 1009 1068 1076 | 890 898 998 1009 1068 1076 | ************************************************************** |
| 891 | 891 | SIMPLE COMMANDS (CANNOT BE PRECEDED BY DIRECTION/DISTANCE): |
| 892 | 892 | E END THE EDIT NORMALLY |
| 893 | 893 | H MOVE TO HEAD OF EDITED FILE |
| 894 | 894 | I INSERT CHARACTERS |
| 895 | 895 | O RETURN TO THE ORIGINAL FILE |
| 896 | 896 | R READ FROM LIBRARY FILE |
| 897 | 897 | Q QUIT EDIT WITHOUT CHANGES TO ORIGINAL FILE |
| 902 | 902 | SAVE STARTING ADDRESS FOR <CR> COMMAND |
| 910 | 910 | GO TO TOP |
| 913 | 913 | PING - PONG DISKS |
| 918 | 918 | INSERT CHARACTERS |
| 923 | 923 | LINE DELETE |
| 925 | 925 | ELIMINATE LINE |
| 938 | 938 | MUST HAVE STOPPED ON CR |
| 943 | 943 | FORGET THIS EDIT |
| 946 | 946 | READ FROM 'LIB' FILE |
| 957 | 957 | FILL REEL, AND NEXT RECORD |
| 974 | 974 | MAY BE A COMMAND WHICH HAS AN OPTIONAL DIRECTION AND DISTANCE |
| 975 | 975 | SCAN A SIGNED INTEGER VALUE(IF ANY) |
| 995 | 995 | DIRECTION AND DISTANCE ARE NOW SET |
| 999 | 999 | MAY BE A COMMAND WHICH HAS DIRECTION AND DISTANCE SPECIFIED: |
| 1000 | 1000 | B BEGINNING/BOTTOM OF BUFFER |
| 1001 | 1001 | C MOVE CHARACTER POSITIONS |
| 1003 | 1003 | K KILL LINES |
| 1004 | 1004 | L MOVE LINE POSITION |
| 1005 | 1005 | P PAGE UP OR DOWN (LPP LINES AND PRINT) |
| 1007 | 1007 | U OPPOSITE L |
| 1008 | 1008 | <CR> MOVE UP OR DOWN LINES AND PRINT LINE |
| 1025 | 1025 | SETS BACK/FRONT |
| 1037 | 1037 | PAGE MODE PRINT |
| 1057 | 1057 | MAY BE MOVE/TYPE COMMAND |
| 1059 | 1059 | FIRST COMMAND |
| 1069 | 1069 | COMMANDS WHICH ALLOW DULY A PRECEDING NUMBER |
| 1070 | 1070 | A APPEND LINES |
| 1071 | 1071 | F FIND NTH OCCURRENCE |
| 1072 | 1072 | M APPLY MACRO |
| 1073 | 1073 | N SAME AS F WITH AUTOSCAN THROUGH FILE |
| 1074 | 1074 | S PERFORM N SUBSTITUTIONS |
| 1075 | 1075 | W WRITE LINES TO OUTPUT FILE |
| 1081 | 1081 | ALL STORAGE FORWARD |
| 1083 | 1083 | DISTANCE = 0 IF APPHALF CALLED |
| 1088 | 1088 | POINTERS REPOSITIONED |
1093 1133 | 1093 1133 | SEARCH STRING SCANNED |
| 1094 | 1094 | AND SETUP BETWEEN 0 AND WBP-1 IN SCRATCH |
| 1100 | 1100 | JUXTAPOSITION OPERATION |
| 1104 | 1104 | SEARCH FOR STRING 0 - WBP-1, INSERT STRING WBP TO WBJ-1, |
| 1105 | 1105 | AND THEN DELETE UP TO STRING WBJ TO WBE-1 |
| 1107 | 1107 | INSERT STRING |
| 1111 | 1111 | SAVE POSITION FOR DELETE |
| 1113 | 1113 | STRING FOUND, SO MOVE IT BACK |
| 1116 | 1116 | NOW REMOVE THE INTERMEDIATE STRING |
| 1122 | 1122 | MACRO DEFINITION |
| 1132 | 1132 | SEARCH FOR STRING WITH AUTOSCAN |
| 1135 | 1135 | FIND ANOTHER OCCURRENCE OF STRING |
| 1136 | 1136 | NOT IN BUFFER |
| 1139 | 1139 | MEMORY BUFFER WRITTEN |
| 1143 | 1143 | MAY BE END OF FILE |
| 1150 | 1150 | SUBSTITUTE COMMAND |
| 1153 | 1153 | FIND STRING FROM0 TO WBP-1, SUBSTITUTE STRING |
| 1154 | 1154 | BETWEEN WBP AND WBE-1 IN SCRATCH |
| 1157 | 1157 | FRONT AMD BACK NOW POSITIONED AT FOUND |
| 1158 | 1158 | STRING - REPLACE IT |
| 1159 | 1159 | BACKED UP |
| 1170 | 1170 | SLEEP |
| 1178 | 1178 | NOT BREAK LEFT OVER FROM STOP |
| 1179 | 1179 | DIRECTION FORWARD, BUT NOT ONE OF THE ABOVE |
| 1181 | 1181 | DIRECTION NOT FORWARD |